<?php
require_once($_SESSION['dir'].'/fotos/FachadasBD/FotoMapper.php');

/**
 * Description of ClassFoto
 *
 * @author jennifer DOSREIS
 */
class ClassFoto {
    private $nombre;
    private $imagen;
    private $id;
    private $tam;
    private $tipo;
    private $muro;
    
    public function __construct() {
        if (func_num_args() ==4) {
            $this->nombre=func_get_arg(0);
            $this->imagen= func_get_arg(1);
            $this->tam=func_get_arg(2);
            $this->tipo= func_get_arg(3);
        }
        if (func_num_args() == 1) {
            $this->id= func_get_arg(0);
        }
    }
    
    public function setImagen($imagen) {
        $this->imagen = $imagen;
    }

    public function getNombre() {
        return $this->nombre;
    }

    public function getImagen() {
        return $this->imagen;
    }

    public static function getListaFoto($ID_album){
        $A=FotoMapper::getInstance();
        $idsNombres=NULL;
        // Obtener la lista de id's y nombres de las
        // fotos pertenecientes al album $ID_album
        if($listaIds= $A->getIdsFotoAlbum($ID_album)){
            $idsNombres=array();
            for($i=0; $i<count($listaIds);$i++){
                $id= $listaIds[$i];
                $idsNombres[$id]=
                            $A->getNombreImagenFoto($id);
                if(!($idsNombres[$id]))
                    RETURN NULL;
            }
        }
        RETURN $idsNombres;
    }
    
        public static function getPersonasFoto($ID_foto){
        $A=FotoMapper::getInstance();
        $idsNombres=NULL;
        // Obtener la lista de personas que aparecen en la foto con id $ID_foto
        $lista= $A->getPersonas($ID_foto);
        RETURN $lista;
    }
    
    public static function getFoto($id_foto){
        $A=FotoMapper::getInstance();
        return $A->getNombreImagenFoto($id_foto);
    }
    
    public function getIdMuro(){
        if(!isset($this->muro)){
            $F=FotoMapper::getInstance();
            $this->muro=$F->getMuroFoto($this->id); 
        }
         RETURN $this->muro;
    }
   
    public function guardarFoto($idAlbum){
        $A=FotoMapper::getInstance();
        $ok=0;
        
        // Si la persona ya tiene una foto con el nombre dado, concatenarle "(1)"
        while(($ok=($A->existeFotoAlbum($this->nombre,$idAlbum)))==1){
            $this->nombre= $this->nombre."(1)";
        }
        
        if ($ok==3)
            RETURN FALSE;
        // Guardar la foto en la base de datos
        $this->id= $A->saveFoto($idAlbum, $this->nombre, $this->imagen,$this->tam,$this->tipo);
        if($this->id==-1)
                RETURN FALSE;
        RETURN TRUE;
    }   
    
    public function savePersonas($ID_foto, $nombre){
        $A=FotoMapper::getInstance();

        $this->id= $A->savePersonaFoto($ID_foto, $nombre);
        if($this->id==-1)
                RETURN FALSE;
        RETURN TRUE;
    }

    
    
}

?>
